﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using XichLoGreen.Models;

namespace XichLoGreen.Controllers
{
    public class GreenIdeasController : Controller
    {
        GreenIntities db = new GreenIntities();
        static List<IdeaModel> lstIdeas = new List<IdeaModel>();
        static int flag = 0;
        static string _title = "";
        static string _content = "";
        static HtmlString _spec = new HtmlString("");
        //
        // GET: /GreenIdeas/

        public ActionResult Index()
        {
            //var ideas = GetTopIdeas(5);
            //return View(ideas);
            switch (flag)
            {
                case -1:
                    {
                        ViewBag.Message = "Please log in to post";
                        ViewBag.IdeaTitle = _title;
                        ViewBag.Content = _content;
                        break;
                    }
                case 0:
                    {
                        ViewBag.Message = "";
                        ViewBag.IdeaTitle = _title;
                        ViewBag.Content = _content;
                        //ViewBag.sepc = _spec;
                        break;
                    }
                case 1:
                    {
                        ViewBag.Message = "Please enter the title of your idea !";
                        ViewBag.IdeaTitle = _title;
                        ViewBag.Content = _content;
                        break;
                    }
                case 2:
                    {
                        ViewBag.Message = "Please fill specification for your idea !";
                        ViewBag.IdeaTitle = _title;
                        ViewBag.Content = _content;
                        break;
                    }
                case 3:
                    {
                        ViewBag.Message = "The title is existed !";
                        ViewBag.IdeaTitle = _title;
                        ViewBag.Content = _content;
                        break;
                    }
            }
            if (lstIdeas.Count == 0)
            {
                GetTopIdeas();
            }
            return View(lstIdeas);
        }

        private void GetTopIdeas()
        {
            IdeaModel idea1 = new IdeaModel
            {
                ID = 0,
                Title = "Đeo kính cho trái đất",
                Content = "Với những người thường xuyên tắm nắng trên bãi biển, họ thường sử dụng kính râm nhằm hạn chế tác động của tia cực tím do ánh nắng mặt trời phát ra. Vận dụng nguyên lý này, nhiều nhà khoa học đã đưa ra sáng kiến \"Đeo kính cho trái đất\". Sáng kiến này thông qua đề xuất tạo một vòng tròn các hạt siêu nhỏ nhằm phân tán ánh sáng hay sử dụng các vệ tinh siêu nhỏ trong quỹ đạo. Vòng tròn nói trên có tác dụng làm giảm bức xạ của mặt trời chiếu vào trái đất và cuối cùng là giảm thiểu các loại khí gây hiệu ứng nhà kính",
                Author = new UserModel { Name = "Demo User", Username = "user123", Type = UserType.NORMAL_USER },
                DateCreated = new DateTime(2013,6,7,8,23,44)
            };
            IdeaModel idea2 = new IdeaModel
            {
                ID = 1,
                Title = "Sử dụng sức mạnh của côn trùng",
                Content = "Nhiều nhà khoa học đưa ra ý tưởng nuôi côn trùng để chúng phân hủy rác thải, hạn chế nguy cơ ô nhiễm môi trường. Côn trùng có thể ăn các chất thải thực phẩm, các chất thải nhựa... ",
                Author = new UserModel { Name = "Demo User", Username = "user123", Type = UserType.NORMAL_USER },
                DateCreated = new DateTime(2013,6,6,21,57,24)
            };
            lstIdeas.Add(idea1);
            lstIdeas.Add(idea2);
        }
        public ActionResult Logout()
        {
            Session["Account"] = null;
            return RedirectToAction("Index");
        }

        [HttpPost]
        public ActionResult PostIdea()
        {
            string title = Request["Idea_name"];
            string content = Request["Idea_content"];
            if (Session["Account"] != null)
            {
                content = content.Replace("\r\n", "<br/>");

                if (title != "" && content != "")
                {
                    flag = 0;
                    foreach (IdeaModel i in lstIdeas)
                    {
                        if (i.Title == title)
                        {
                            flag = 3;
                            break;
                        }
                    }
                    if (flag == 0)
                    {
                        IdeaModel newIdea = new IdeaModel();
                        newIdea.Title = title;
                        newIdea.Content = content;
                        newIdea.Author = (UserModel)Session["Account"];
                        newIdea.DateCreated = DateTime.Now;

                        lstIdeas.Insert(0, newIdea);
                    }
                }
                else
                {
                    if (title == "")
                        flag = 1;
                    else
                        flag = 2;
                }
            }
            else
                flag = -1;
            if (flag != 0)
            {
                _title = title;
                _content = content;
            }
            else
            {
                _title = "";
                _content = "";
            }
            return RedirectToAction("Index");
        }

        [HttpPost]
        public ActionResult Login()
        {
            var usrname = Request["username"];
            var passwd = Request["password"];
            if (usrname != null && passwd != null)
            {
                if (usrname.Equals("user123") && passwd.Equals("123"))
                {
                    var user = new UserModel() { Name = "Demo User", Username = "user123", Type = UserType.NORMAL_USER };
                    Session["Account"] = user;
                    flag = 0;
                }
                if (usrname.Equals("user234") && passwd.Equals("234"))
                {
                    var user1 = new UserModel() { Name = "UserA", Username = "user234", Type = UserType.NORMAL_USER };
                    Session["Account"] = user1;
                    flag = 0;
                }
            }
            return RedirectToAction("Index");
        }
    }
}
